#ifndef PERSON_H
#define PERSON_H

#include <iostream>
#include <sstream>
#include <opencv/cv.h>

/**
* @class Person
*
* @brief Representation of a person in an image
*
*
* This class contains variables that represent a person in an
* image, as well as methods for getting and setting them.
*
* @author Elisabeth Lindquist, elisabeth.lindquist@gmail.com
*
*/
using namespace cv;

class Person{
    public:
        Person(int i);
        Person();
        ~Person();


        int getId();
        float getDistance();
        float getSpeed();
        float getHandHeadRatio();
        int getPose();
        int getCentreX();
        int getCentreY();
        int getMinX();
        int getMaxX();
        int getMaxY();
        int getMinY();
        string getGesture();
        Point3i getHandPos();
        Point3i getCentrePos();


        void setDistance(float d);
        void setSpeed(float s);
        void setHandHeadRatio(float r);
        void setPose(int p);
        void setCentre(int x, int y);
        void setMaxX(int x);
        void setMinX(int x);
        void setMaxY(int y);
        void setMinY(int y);

        void setGesture(string s);
        void setHandPos(int xPos, int yPos, int zPos);
        void setCentrePos(int xPos, int yPos, int zPos);

        void print();



    private:
        int id;
        float distance;
        float speed;
        string gesture;
        float handHeadRatio;
        int centreX,centreY;
        int maxX, minX;
        int maxY, minY;
        Point3i handPos;
        Point3i centrePos;
        int pose;


};
#endif
